<?php
namespace Home\Controller;
class NativeController extends BaseController{
    public function _initialize(){
       Vendor('WxPayPubHelper.WxPayPubHelper');
    }
    public function createQrcode(){
       //实例统一支付接口
      $UnifiedOrder=new \UnifiedOrder_pub(); 
      //设置统一支付接口参数
      //设置必填参数
      //appid已填,商户无需重复填写
      //mch_id已填,商户无需重复填写
      //noncestr已填,商户无需重复填写
      //spbill_create_ip已填,商户无需重复填写
      //sign已填,商户无需重复填写
      $UnifiedOrder->setParameter('body', '测试收款1分钱');//商品描述
      $UnifiedOrder->setParameter('out_trade_no', C('MCHID').date('YmdHis'));//商户订单号
      $UnifiedOrder->setParameter('total_fee', '1');//总额
      $UnifiedOrder->setParameter('notify_url', C('NOTIFY_URL'));//通知地址（回调地址）
      $UnifiedOrder->setParameter('trade_type', 'NATIVE');//交易类型
      
      //获取统一支付接口结果
      $result=$UnifiedOrder->getResult();
       //商户根据实际情况设置相应的处理流程
        if ($result["return_code"] == "FAIL") 
        {
            //商户自行增加处理流程
            $errmsg= "通信出错：".$result['return_msg']."<br>";
        }
        elseif($result["result_code"] == "FAIL")
        {
            //商户自行增加处理流程
            $errmsg= "错误代码：".$result['err_code']."<br>";
            $errmsg= "错误代码描述：".$result['err_code_des']."<br>";
        }
        elseif($result["code_url"] != NULL)
        {
            //从统一支付接口获取到code_url
            $code_url = $result["code_url"];
            //商户自行增加处理流程 
        }
        $this->assign('codeurl',$code_url);
        $this->assign('errmsg',$errmsg);
        $this->assign('out_trade_no',$result['prepay_id']);
        $this->display();
        
    }
    public function notify(){
        $notify=new \Notify_pub();
        //存储微信的回调
        $xml = $GLOBALS['HTTP_RAW_POST_DATA'];
        $notify->saveData($xml);
        $data=$notify->getData();
       if($notify->checkSign()==FALSE){
           $notify->setReturnParameter("return_code","FAIL");//返回状态码
           $notify->setReturnParameter("return_msg","签名失败");//返回信息
       }else{
           $notify->setReturnParameter("return_code","SUCCESS");//设置返回码
       }
       $returnXml = $notify->returnXml();
       echo $returnXml;//告诉微信服务器订单是否完成（成功or失败）
       if($notify->checkSign()==TRUE && $data['return_code']=='SUCCESS' && $data['result_code']=='SUCCESS'){
           //修改订单相关信息  
       }   
       
    }
    public function orderQuery(){
        $orderquery=new \OrderQuery_pub();
        $orderquery->setParameter('out_trade_no', '138209390220170324134359');
        dump($orderquery->postXml());
        //写入相应的订单查询表
    }
    
    
    
    
    
    
    
    
    
}
  